<?php
/*
 * Mp DAL.
 * @Autor: Inicial.cl.
 */
class MpDAL {
	//METODO PARA GRABAR MP.
	public static function grabar($oMp){
		try{
			$arr = array(
				"{#ASUNTO}" => $oMp->getAsunto(),
				"{#MENSAJE}" => $oMp->getMensaje(),
				"{#FECHAENVIO}" => $oMp->getFechaEnvio(),
				"{#FECHALECTURA}" => $oMp->getFechaLectura(),
				"{#LEIDO}" => $oMp->getLeido(),
				"{#IDUSUARIODESTINATARIO}" => $oMp->getIdUsuarioDestinatario(),
				"{#IDUSUARIOREMITENTE}" => $oMp->getIdUsuarioRemitente()
			);
			$query = Util::getQuery($arr, MpSQL::$GRABAR_MP);
			$arrDatos = Bd::exec($query);

			$id = Bd::$IDENTITY; //Retorno id insertado
			return $id;
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA EDITAR MP.
	public static function editar($oMp){
		try{
			$arr = array(
				"{#ID}" => $oMp->getId(),
				"{#ASUNTO}" => $oMp->getAsunto(),
				"{#MENSAJE}" => $oMp->getMensaje(),
				"{#FECHAENVIO}" => $oMp->getFechaEnvio(),
				"{#FECHALECTURA}" => $oMp->getFechaLectura(),
				"{#LEIDO}" => $oMp->getLeido(),
				"{#IDUSUARIODESTINATARIO}" => $oMp->getIdUsuarioDestinatario(),
				"{#IDUSUARIOREMITENTE}" => $oMp->getIdUsuarioRemitente()
			);
			$query = Util::getQuery($arr, MpSQL::$EDITAR_MP);
			$arrDatos = Bd::exec($query);

		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA LISTAR MP.
	public static function listar($oMp){
		try{
			$arr = array(
				"{#ID}" => $oMp->getId(),
				"{#ASUNTO}" => $oMp->getAsunto(),
				"{#MENSAJE}" => $oMp->getMensaje(),
				"{#FECHAENVIO}" => $oMp->getFechaEnvio(),
				"{#FECHALECTURA}" => $oMp->getFechaLectura(),
				"{#LEIDO}" => $oMp->getLeido(),
				"{#IDUSUARIODESTINATARIO}" => $oMp->getIdUsuarioDestinatario(),
				"{#IDUSUARIOREMITENTE}" => $oMp->getIdUsuarioRemitente()
			);
			$query = Util::getQuery($arr, MpSQL::$LISTAR_MP);
			$arrDatos = Bd::exec($query);
			$arrMp = array();

			if (count($arrDatos) > 0) {
				foreach ($arrDatos as $row) {
					$oMp = new Mp();

					$oMp->setId($row["id"]);
					$oMp->setAsunto($row["asunto"]);
					$oMp->setMensaje($row["mensaje"]);
					$oMp->setFechaEnvio($row["fechaEnvio"]);
					$oMp->setFechaLectura($row["fechaLectura"]);
					$oMp->setLeido($row["leido"]);
					$oMp->setIdUsuarioDestinatario($row["idUsuarioDestinatario"]);
					$oMp->setIdUsuarioRemitente($row["idUsuarioRemitente"]);

					$arrMp[] = $oMp;
				}
			}

			return $arrMp;
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA OBTENER POR ID MP.
	public static function obtenerPorId($id){
		try{
			$arr = array(
					"{#ID}" => $id
				);
			$query = Util::getQuery($arr, MpSQL::$OBTENER_MP_POR_ID);
			$arrDatos = Bd::exec($query);

			if (count($arrDatos) > 0) {
				$oMp = new Mp();

				foreach ($arrDatos as $row) {
					$oMp->setId($row["id"]);
					$oMp->setAsunto($row["asunto"]);
					$oMp->setMensaje($row["mensaje"]);
					$oMp->setFechaEnvio($row["fechaEnvio"]);
					$oMp->setFechaLectura($row["fechaLectura"]);
					$oMp->setLeido($row["leido"]);
					$oMp->setIdUsuarioDestinatario($row["idUsuarioDestinatario"]);
					$oMp->setIdUsuarioRemitente($row["idUsuarioRemitente"]);
				}
				return $oMp;
			}
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA ELIMINAR MP.
	public static function eliminar($id){
		try{
			$arr = array("{#ID}" => $id);
				$query = Util::getQuery($arr, MpSQL::$ELIMINAR_MP);
				$arrDatos = Bd::exec($query);

		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}
}
?>